/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

/**
 *
 * @author Zenilo
 */

import java.sql.Connection;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import java.util.Vector;  
import javax.swing.JOptionPane;  
import modelo.dominio.Funcionario;
import dao.banco.ConFactory;  
import java.sql.ResultSet;
  
public class DaoFuncionario {   
   // Configura essas variáveis de acordo com o seu banco  
   private final String URL = "jdbc:mysql://localhost/bd_locarrao",  
                        NOME = "root", SENHA = "locarrao2";  
  
   private Connection con;  
   private Statement comando;  
  
   public void apagar(String cpf) {  
      conectar();  
      try {  
         comando.executeUpdate("DELETE FROM pessoa WHERE cpf = '" + cpf  
                     + "';");  
      } catch (SQLException e) {  
         imprimeErro("Erro ao apagar pessoas", e.getMessage());  
      } finally {  
         fechar();  
      }  
   }  
  
   
   
   /**
    * insere um funcionario no banco de dados.
    * @param funcionario funcionario a ser inserido.
    */
   public void insere(Funcionario funcionario){  
      conectar();  
      try {    
         comando.executeUpdate("INSERT INTO `bd_locarrao`.`tb_funcionario` (`cpf`) VALUES ('" + funcionario.getCpf() + "')");
         System.out.println("Inserida!");
      } catch (SQLException e) {  
         imprimeErro("Erro ao inserir Funcionario", e.getMessage());  
      } finally {  
         fechar();
      }  
   } 
   
   /**
    * conecta com o banco de dados.
    */
   private void conectar() {  
      try {  
         con = ConFactory.conexao(URL, NOME, SENHA, ConFactory.MYSQL);  
         comando = con.createStatement();  
         System.out.println("Conectado!");  
      } catch (ClassNotFoundException e) {  
         imprimeErro("Erro ao carregar o driver", e.getMessage());  
      } catch (SQLException e) {  
         imprimeErro("Erro ao conectar", e.getMessage());  
      }  
   }  
  

   /**
    * fecha o banco de dados.
    */
      public int retornaCodUltimoRegistro(){
       conectar();
       int resultado=0;
       ResultSet rs;
       try {
           
       rs = comando.executeQuery("SELECT Max(cod_funcionario) FROM bd_locarrao.tb_funcionario;"); 
       while(rs.next() ){
             resultado = rs.getInt("Max(cod_funcionario)");
       }
       return(resultado);
       } catch (SQLException e) {  
         imprimeErro("Erro ao buscar cod_funcionario", e.getMessage());  
         return (0);
      }  

   }  
      

   private void fechar() {  
      try {  
         comando.close();  
         con.close();  
         System.out.println("Conexão Fechada");  
      } catch (SQLException e) {  
         imprimeErro("Erro ao fechar conexão", e.getMessage());  
      }  
   }  
  
   private void imprimeErro(String msg, String msgErro) {  
      JOptionPane.showMessageDialog(null, msg, "Erro crítico", 0);  
      System.err.println(msg);  
      System.out.println(msgErro);  
      System.exit(0);  
   }  
}  
